// RAP [bm]: animations ///******************************************************************************* // * Copyright (c) 2006 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // ******************************************************************************/ // //package org.eclipse.ui.internal; // //import java.util.ArrayList; //import java.util.Iterator; //import java.util.List; // //import org.eclipse.jface.util.Geometry; //import org.eclipse.swt.SWT; //import org.eclipse.swt.events.PaintEvent; //import org.eclipse.swt.events.PaintListener; //import org.eclipse.swt.graphics.GC; //import org.eclipse.swt.graphics.Image; //import org.eclipse.swt.graphics.Rectangle; //import org.eclipse.swt.widgets.Canvas; //import org.eclipse.swt.widgets.Composite; //import org.eclipse.swt.widgets.Display; //import org.eclipse.swt.widgets.Shell; // ///** // * @since 3.3 // * // */ //public class ImageAnimationFeedback extends DefaultAnimationFeedback { // private class ImageCanvas extends Canvas { // private Image image; // /** // * @param parent // * @param style // */ // public ImageCanvas(Composite parent, int style, Image image) { // super(parent, style); // this.image = image; // // addPaintListener(new PaintListener() { // public void paintControl(PaintEvent e) { // paintImage(e.gc); // } // }); // } // /** // * @param gc // */ // protected void paintImage(GC gc) { // gc.drawImage(image, 0, 0, image.getBounds().width, image.getBounds().height, 0, 0, getBounds().width, getBounds().height); // } // // /* (non-Javadoc) // * @see org.eclipse.swt.widgets.Widget#dispose() // */ // public void dispose() { // super.dispose(); // image.dispose(); // } // } // // private Display display; // private Shell theShell; // // private List startRects = new ArrayList(); // private List endRects = new ArrayList(); // private List controls = new ArrayList(); // // private Image backingStore; // // /** // * Creates an animation effect where the interpolated rectangles are displayed using Canvas // * controls that show an image of the bits that were originally occupied by the various // * 'start' rectangles. // */ // public ImageAnimationFeedback() {} // // /** // * @param parentShell // */ // public void initialize(Shell parentShell, Rectangle startRect, Rectangle endRect) { // display = parentShell.getDisplay(); // // Rectangle psRect = parentShell.getBounds(); // theShell = new Shell(parentShell, SWT.NO_TRIM | SWT.ON_TOP); // theShell.setBounds(parentShell.getBounds()); // // addStartRect(startRect); // addEndRect(endRect); // // // Capture the background image // backingStore = new Image(theShell.getDisplay(), psRect); // GC gc = new GC(display); // gc.copyArea(backingStore, psRect.x, psRect.y); // gc.dispose(); // // theShell.setBackgroundImage(backingStore); // theShell.setVisible(true); // display.update(); // } // // public void addStartRect(Rectangle rect) { // if (rect != null) { // Rectangle start = Geometry.toControl(theShell, rect); // startRects.add(start); // // Image image = new Image(display, rect.width, rect.height); // GC gc = new GC(display); // gc.copyArea(image, rect.x, rect.y); // gc.dispose(); // // ImageCanvas canvas = new ImageCanvas(theShell, SWT.BORDER | SWT.NO_BACKGROUND, image); // controls.add(canvas); // } // } // // public void addEndRect(Rectangle rect) { // if (rect != null) { // Rectangle end = Geometry.toControl(theShell, rect); // endRects.add(end); // } // } // // public void renderStep(double amount) { // // Move the controls to the new interpolation position // Iterator startIter = startRects.iterator(); // Iterator endIter = endRects.iterator(); // Iterator ctrlIter = controls.iterator(); // while (startIter.hasNext()) { // Rectangle start = (Rectangle) startIter.next(); // Rectangle end = (Rectangle) endIter.next(); // ImageCanvas canvas = (ImageCanvas) ctrlIter.next(); // // // Get the bounds of the interpolated rect // Rectangle curRect = RectangleAnimation.interpolate(start, end, amount); // canvas.setBounds(curRect); // } // // display.update(); // } // // public void jobInit() { // } // // /** // * // */ // public void dispose() { // backingStore.dispose(); // for (Iterator ctrlIter = controls.iterator(); ctrlIter.hasNext();) { // ImageCanvas canvas = (ImageCanvas) ctrlIter.next(); // canvas.dispose(); // } // // theShell.setVisible(false); // theShell.dispose(); // } //}